package xyz.scootaloo.mono.admin.dto

/**
 * @author flutterdash@qq.com
 * @since 2021/9/23 10:51
 */

/**
 * 分页信息
 *
 * 示例:
 *     创建对象 PageInfo(10, 2, 5, listOf(5, 6, 7, 8, 9, 10))
 *     总数是10, 而页面大小是5, 所以可以分成两页, 当前页是第二页, 所以当前显示的是第二页的数据.
 *
 * 前端显示
 *      5
 *      6
 *      7
 *      8
 *      9
 *      10
 *   < 1 [2] >
 *
 * @param total     数据总数
 * @param pageIndex 当前页面索引
 * @param pageSize  页面的大小
 * @param list      实际返回的数组
 */
data class PageInfo<T> constructor(
    var total: Int,
    var pageIndex: Int,
    var pageSize: Int,
    var list: List<T>
)

/**
 * 通用菜单
 *
 * 所返回的json对象已经具有树状结构, 前端可以直接根据json进行渲染
 */
data class MenuItemVO(
    var title: String,
    var key: String,
    var icon: String,
    var isLeaf: Boolean = false,
    var expanded: Boolean = false,
    val children: MutableList<MenuItemVO> = ArrayList()
)
